@echo off
:: 设置控制台编码为UTF-8
chcp 65001 >nul
:: 设置JVM编码参数
set JAVA_OPTS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dconsole.encoding=UTF-8
title MyBatis-Plus 达梦数据库代码生成器

echo ==================== MyBatis-Plus 达梦数据库代码生成器 ====================
echo 当前控制台编码: UTF-8 (65001)
echo JVM编码参数: %JAVA_OPTS%
echo.

:menu
echo 请选择要使用的代码生成器：
echo 1. 直接配置版本 (DmCodeGenerator)
echo 2. 配置文件版本 (ConfigurableCodeGenerator) 
echo 3. 查看帮助
echo 4. 退出
echo.
set /p choice=请输入选项 (1-4): 

if "%choice%"=="1" goto direct_config
if "%choice%"=="2" goto config_file
if "%choice%"=="3" goto help
if "%choice%"=="4" goto exit
echo 无效选项，请重新选择
echo.
goto menu

:direct_config
echo.
echo 正在启动直接配置版本代码生成器...
echo 注意：请先在 DmCodeGenerator.java 中配置数据库连接信息和表名
echo.
pause
mvn compile exec:java -Dexec.mainClass="com.code.DmCodeGenerator" %JAVA_OPTS%
echo.
echo 代码生成完成！
pause
goto menu

:config_file
echo.
echo 正在启动配置文件版本代码生成器...
echo 注意：请先在 src/main/resources/generator.properties 中配置相关信息
echo.
pause
mvn compile exec:java -Dexec.mainClass="com.code.ConfigurableCodeGenerator" %JAVA_OPTS%
echo.
echo 代码生成完成！
pause
goto menu

:help
echo.
echo ==================== 使用帮助 ====================
echo.
echo 1. 直接配置版本：
echo    - 适合快速测试和简单使用
echo    - 需要修改 DmCodeGenerator.java 中的配置
echo    - 所有配置都在代码中
echo.
echo 2. 配置文件版本：
echo    - 适合生产环境和团队协作
echo    - 需要修改 generator.properties 配置文件
echo    - 配置与代码分离，更灵活
echo.
echo 配置要点：
echo    - 数据库连接信息（URL、用户名、密码）
echo    - 包名配置（父包名、模块名等）
echo    - 表名配置（包含的表、排除的表、表前缀）
echo    - 生成选项（Lombok、Swagger等）
echo.
echo 详细说明请查看 README.md 文件
echo ================================================
echo.
pause
goto menu

:exit
echo.
echo 感谢使用 MyBatis-Plus 达梦数据库代码生成器！
echo.
pause
exit

:error
echo.
echo 执行过程中出现错误，请检查：
echo 1. 是否已安装 Maven
echo 2. 是否已配置正确的数据库连接信息
echo 3. 达梦数据库是否正在运行
echo 4. 网络连接是否正常
echo.
pause
goto menu